package main

import "fmt"

// 定义Person类，包含的属性有姓名、性别、年龄；包含的方法说话、走路
type Person struct {
	Name   string
	Gender string
	Age    int
}

// 给Person类添加方法
// 方法本质上就是一个函数；
// 普通的函数，可以随意调用；方法这种函数只能通过接口者（创建的对象）调用。
// p 是一个接收者的名称，是自定义
// Person是接口者的类型，指定的类型
func (p Person) say() {
	// p指向调用方法的结构体变量
	// p1.say()    p -> p1
	// p2.say()    p -> p2
	// fmt.Println("当前接收者：", p)
	fmt.Println(p.Name, "正在说话")
}
func (p Person) eat(food string) {
	fmt.Println(p.Name, "正在吃", food)
}

func main() {
	// 创建对象
	// var p1 Person = Person{}
	p1 := Person{"小明", "男", 18}
	p1.say()
	p1.eat("油条")
	p2 := Person{"小红", "女", 20}
	p2.say()
	p2.eat("面包")
}
